UnityWebRequest

UnityWebRequest提供了一个用于编写HTTP请求和处理HTTP响应的模块化系统。UnityWebRequest系统的主要目标是允许Unity游戏与Web浏览器后端进行交互。它还支持高需求的功能,如分块的HTTP请求,流式POST / PUT操作以及对HTTP标头和动词的完全控制。

该系统由两层组成:

    • 高级API(HLAPI)包裹低级API,并提供了方便的接口,用于执行常见的操作
    • 一个低级别的API(LLAPI)提供了更高级的用户最大的灵活性

支持的平台

UnityWebRequest系统支持大多数Unity平台:

    • 所有版本的编辑器和独立播放器
    • WebGL的
    • 移动平台:iOS,Android
    • 通用Windows平台
    • PS4和PSVita
    • XboxOne
    • 任天堂开关

创建

UnityWebRequest生态系统将HTTP事务分解为三种不同的操作:

    • 向服务器提供数据
    • 从服务器接收数据
    • HTTP流量控制(例如重定向和错误处理)

为了为高级用户提供更好的界面,这些操作分别由它们自己的对象来管理:

    • 一个UploadHandler对象处理数据到服务器的传输
    • 一个DownloadHandler对象处理从服务器收到的数据的接收,缓存和后处理
    • 一个UnityWebRequest对象管理另外两个对象,并处理HTTP流量控制。该对象是自定义标题和URL定义的位置,以及存储错误和重定向信息的位置。

对于任何HTTP事务,正常的代码流是:

    • 创建一个Web请求对象
    • 配置Web请求对象
            • 设置自定义标题
            • 设置HTTP动词(例如GET,POST,HEAD - 在Android以外的所有平台上都允许使用自定义动词)
            • 设置网址
    • (可选)创建上传处理程序并将其附加到Web请求
            • 提供要上传的数据
            • 提供要上传的HTTP表单
    • (可选)创建一个下载处理程序并将其附加到Web请求
    • 发送Web请求
            • 如果在协同程序中,您可能会Send()发出调用结果以等待请求完成
    • (可选)从下载处理程序读取收到的数据
    • (可选)从UnityWebRequest对象读取错误信息,HTTP状态代码和响应头

🔚